1. Technical Field
The present disclosure is related to systems and methods for synchronizing nodes of a robotic system. In particular, the present disclosure is related to synchronization databases that can be executed at each node of the robotic system, the synchronization databases allowing for the subscription and publishing of updated attributes between the nodes of the robotic system.
2. Discussion of Related Art
Certain applications have high bandwidth requirements and strict synchronization, latency, and reliability requirements for communications. Robot-assisted surgery, for example, requires low-latency to transmit control and feedback signals in real time. The synchronization and latency requirements of such applications are strict, because ideally there should be as little lag as possible between the movements of a surgeon controlling a master input and the movements of the robot slaved to the master.
Complex systems, including robot-assisted surgery systems, include many components, referred to generally herein as “nodes”, that work together within the system and therefore need to be able to remain synchronized. For each of these coupled nodes, the synchronization is often performed by a first node sending data requests to a second node, to which the second node will respond to the request by providing the requested data to the first node. In some instances, a first node will check for the presence of the second node and a third node, and if the second and third node are found to be present, the first node will then push data to the second and third nodes. If the second or third nodes are disconnected from the first node and then reconnected, the first node may not be notified that the second or third node was disconnected, and as a result the reconnected node may be missing data that the first node sent during the disconnection. Furthermore, when a new node is coupled to the first node, the first node may not check for the presence of the new node and, thus, not provide any data to the new node so that data at the new node is not synchronized with the first node's data. Ultimately, the need for the system to continually check for the presence of nodes and then send data to each of the nodes to remain synchronized may create unnecessary system traffic that can slow down the system or overflow message queues.
What is needed are systems and methods that permit the automatic synchronization of nodes in a system with minimal system traffic and that allow for the rapid synchronization of new nodes to the system.